/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cr.ac.una.sive.managed;

import cr.ac.una.cgi.viajes.view.util.FacesUtils;
import cr.ac.una.sive.entidad.Marchamo;
import cr.ac.una.sive.entidad.MarchamoLocal;
import cr.ac.una.sive.entidad.UsuarioLocal;
import cr.ac.una.sive.sessionbean.MarchamoFacadeLocal;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;


@ManagedBean
@RequestScoped
public class MarchamoFacadeManaged {

    @EJB(mappedName = "ejb/MarchamoFacade")
    private MarchamoFacadeLocal marchamoFacade;
    
    @EJB(mappedName = "ejb/VehiculoFacade")
    private MarchamoFacadeLocal vehiculoFacade;
    
    @EJB(mappedName = "ejb/UsuarioFacade")
    private MarchamoFacadeLocal usuarioFacade;

     private MarchamoLocal marchamoLocal = new MarchamoLocal();

    public void setMarchamoLocal(MarchamoLocal marchamoLocal) {
        this.marchamoLocal = marchamoLocal;
    }

    public MarchamoLocal getMarchamoLocal() {
        return marchamoLocal;
    }
    /**
     * Creates a new instance of MarchamoFacadeManaged
     */
    public MarchamoFacadeManaged() {
    }
    
    
    
    
    /*********METODO PARA GUARDAR MARCHAMO*****/
    
    public void guardar() {
        FacesContext context = FacesContext.getCurrentInstance();

        FacesMessage message = new FacesMessage();

        Marchamo marchamo = new Marchamo();
        
        /**
         * ***** POR EL MOMENTO SIEMPRE VA INSERTAR********
         */
        String estado = "inserta";

        try {
            
                UsuarioFacadeManaged usuarioFacadeManaged = (UsuarioFacadeManaged) FacesUtils.getManagedBean("usuarioFacadeManaged");
                
                VehiculoFacadeManaged vehiculoFacadeManaged = (VehiculoFacadeManaged) FacesUtils.getManagedBean("vehiculoFacadeManaged");
                
                UsuarioLocal usuarioLocal = usuarioFacadeManaged.getUsuarioLocal();

                marchamo.setIdMarchamo(marchamoLocal.getIdMarchamo());
                marchamo.setEstadoMarchamo(marchamoLocal.getEstadoMarchamo());
                marchamo.setFechaCreacion(marchamoLocal.getFechaCreacion());
                marchamo.setFechaVigencia(marchamoLocal.getFechaVigencia());            
                marchamo.setTipoMarchamo(marchamoLocal.getTipoMarchamo());
                marchamo.setUsuario(usuarioFacadeManaged.getUsuarioLocal());
                marchamo.setVehiculo(vehiculoFacadeManaged.getVehiculoLocal());

            if (estado.equals("inserta")) {
                
                 //  vehiculoFacade.create(vehiculoFacadeManaged.getVehiculoLocal());
                //Usuario usuario = new Usuario();
                //     usuario=  (Usuario)usuarioFacadeManaged.getUsuarioLocal();
                //usuarioFacade.create(usuarioLocal);
                 
                marchamoFacade.create(marchamo);
                
                message.setSeverity(FacesMessage.SEVERITY_INFO);
                message.setSummary("Marchamo Insertado Correctamente");
                context.addMessage("Campos", message);
                //listaMarchamo = null;

            } else if (estado.equals("modifica")) {
                marchamoFacade.edit(marchamo);
                message.setSeverity(FacesMessage.SEVERITY_INFO);
                message.setSummary("Marchamo Modificado Correctamente");
                message.setDetail("Marchamo Modificado Correctamente");
                context.addMessage("Campos", message);
            }

        } catch (Exception e) {
            message.setSeverity(FacesMessage.SEVERITY_INFO);
            message.setSummary(e.getMessage());
            message.setDetail(e.getMessage());
            context.addMessage("Campos", message);
        }


        


    }
    public void doNothing(){
    
    }
}
